Offset-based Pagination
シンプルで扱いやすい
「10ページ目を見る」のような決め打ちがしやすい
大きいコンテンツ数に対して、後ろの方のデータを取得する際にパフォーマンスが悪くなる
LIMIT 100, 10は、10個ずつ表示される時の101ページ目を取得するクエリ
内部では、110個取得して、先頭から100個を捨てる、ということをする
だから、ページの後の方へ行けば行くほど遅くなる
pagingの途中でデータに追加削除があった場合にズレる
例えば、b,c,d,e,f,g,h,i,j,...というデータを3個ずつページめくりする時に
理想的には、b,c,d→e,f,g→h,i,j→..と続くが、
2回目の遷移の前に、頭にデータが追加されると、
b,c,d→d,e,f→g,h,i→...となり、dが2回表示される
命名の例
offset / limit
skip / take
https://gyazo.com/29707f30f99ffaf374e28c80d1563384 https://www.prisma.io/docs/concepts/components/prisma-client/pagination#offset-pagination
参考